package com.hltx.service.user_dubbo;

import java.util.List;
import java.util.Map;

import com.hltx.pojo.business.BusinessInfo;
import com.hltx.pojo.user.Group;
import com.hltx.pojo.user.SMessage;
import com.hltx.pojo.user.User;
import com.hltx.pojo.user.UserAccount;
import com.hltx.pojo.user.UserLogin;

public interface UserManager {

	public String test();

	/**
	 *  获取当前用户信息
	 * @param user
	 * @return
	 */
	public User getUser(int id);

	/**
	 *  根据用户名和密码获取用户详情
	 * @param user
	 * @return
	 */
	public UserLogin userLogin(UserLogin user);

	/**
	 *  根据登录ID获取登录人详细信息
	 * @param loginId
	 * @return
	 */
	public Map<String, Object> getLoginInfo(int loginId);

	/**
	 *  修改密码
	 * @param id
	 * @param oldPwd
	 * @param newPwd
	 * @return
	 */
	public String updatePwd(int id, String oldPwd, String newPwd,String userName,String clientid,String clientSecret,String orgName,String appName);
	
	/**
	 * 找回密码 （因为找回密码是在没有登录的情况下进行修改密码的 只能根据用户名 进行修改）
	 * @param login
	 */
	public void updateNewsPwd(UserLogin login);
	
	/**
	 * 修改昵称
	 * @param id
	 * @param petName
	 */
	public void saveName(Integer id, String petName);
	
	/**
	 * 修改性别
	 * @param id
	 * @param sex
	 */
	public void updateSex(Integer id, String sex);
	
	/**
	 * 添加登录信息（账号密码） 
	 * @param user
	 * @return
	 */
	public int saveUser(User user);
	
	/**
	 * 保存userInfo信息
	 * @param user
	 * @return
	 */
	public int saveUserInfo(User user); 

	/**
	 * 修改生日日期
	 * @param id
	 * @param birthday
	 */
	public void updateDay(Integer id, String birthday);
	
	/**
	 * 用户注册
	 * @param login
	 * @return
	 */
	public int saveUserRegister(UserLogin login);
	
	/**
	 * 更改图片地址
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 13:54:25
	 */
	public void uploadimageAddress(Integer id, String imageAddress);
	
	/**
	 * 根据登录id查询用户详情
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 14:16:43
	 */
	public User getUserInfo(int id);
	
	/**
	 * 在hltx_user_login表中添加数据信息
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 14:18:19
	 */
	public void saveUserLogin(UserLogin login);
	
	/**
	 * 
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 14:19:12
	 */
	public int saveAppUser(UserLogin login, User us);
	
	/**
	 * 修改用户的地址，性别，昵称，生日
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 14:46:44
	 */
	public void updateAppUser(User user);
	
	/**
	 * 根据用户id查询用户详情
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 15:12:16
	 */
	public User getAppUser(int id);
	
	/**
	 * 根据用户登录名修改密码
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 15:30:05
	 */
	public void updateAppPwd(User user);
	
	/**
	 * 得到验证码
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 15:32:10
	 */
	public String getAppCode(User user);
	
	/**
	 * 根据手机号获取登录表中的信息
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 15:45:31
	 */
	public User getLoginId(User user);
	
	/**
	 * 根据登录名获取用户id
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 15:48:56
	 */
	public String getUserByPhone(User user);
	
	
	/**-
	 * 根据用户id查询此用户的好友列表
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 15:49:50
	 */
	public List<User> getFriendsAll(User user);
	
	/**
	 * 添加好友
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 15:50:23
	 */
	public void saveAppFirend(User user);
	
	/**
	 * 获取当前用户好友的其中一个id  （一个用户可以拥有多个好友，一个好友可以归多个用户 所以才需要用户id和好友id一起判断）
	 * @author : GeHuanHuan
	 * @version : 2017.6.9 15:51:05
	 */
	 public String getFirend(User user);
	 
	 /**
	  *  根据手机号或者昵称 获取用户的信息
	  * @author : GeHuanHuan
	  * @version : 2017.6.9 17:46:23
	  */
	 public List<User> getByPhone(User user);
	 
	 
	 
	 /**
	  * 根据登录用户名获取密码
	  * @author : GeHuanHuan
	  * @version : 2017.6.9 17:57:52
	  */
	 public String getPwd(User user);
	 
	 /**
	  * 互加好友的时候 调用saveAppFirends 和 saveAppFirend这两个方法（两个方法必须要同时调用，提交）
	  * @author : GeHuanHuan
	  * @version : 2017.6.9 17:59:35
	  */
	 public void saveAppFirends(User user);
	 
	 /**
	  * 根据用户id获取此用户的手机号码
	  * @author : GeHuanHuan
	  * @version : 2017.6.9 18:05:38
	  */
	 public String getPhone(String id);
	 
	 /**
	  * 根据登录账号 得到支付密码
	  * @author : GeHuanHuan
	  * @version : 2017.6.9 18:08:33
	  */
	 public String getPayPwd(User user);
	 
	 /**
	  * 修改支付密码
	  * @author : GeHuanHuan
	  * @version : 2017.6.9 18:11:18
	  */
	 public void updatePayPwd(int id, String newPwd);
	 
	 /**
      * 根据用户id来获取支付密码
      * @author : GeHuanHuan
      * @version : 2017.6.9 18:23:00
      */
     public User getPayPwd1(String id);
	 
	 /**
	  * 根据手机号获取用户id
	  * @author : GeHuanHuan
	  * @version : 2017.6.9 18:19:03
	  */
	 public User getUserParams(String phone);
	 
	 /**
	  * 互删好友
	  * @author : GeHuanHuan
	  * @version : 2017.6.9 18:19:18
	  */
	 public int deleteFirend(User user);
	 
	 /**
	  * 搜索用户（根据手机号码【手机号码完全匹配】 或者是 昵称【昵称模糊匹配】进行搜索）
	  * @author : GeHuanHuan
	  * @version : 2017.6.12 10:32:06
	  */
	 public List<User> getByName(User user); 
	 
	 /**
	  * 环信加好友的时候 会在此表中添加一条数据
	  * @author : GeHuanHuan
	  * @version : 2017.6.12 10:45:35
	  */
	 public int saveApply(User user);
	 
	 /**
	  * 获取好友列表
	  * @author : GeHuanHuan
	  * @version : 2017.6.12 10:52:19
	  */
	 public List<User> getApply(User user);
	 
	 /**
	  * 删除好友
	  * @author : GeHuanHuan
	  * @version : 2017.6.12 10:57:02
	  */
	 public void deleteApply(User user) ;
	 
	 /**
	  * 根据手机号判断是否注册过此账号
	  * @author : GeHuanHuan
	  * @version : 2017.6.12 11:18:27
	  */
	 public int userIsExists(String phone);
	 /**
	  * 获取通知的消息
	  * @author : GeHuanHuan
	  * @version : 2017.6.12 11:22:55
	  */
	 public List<SMessage> getMessage(User user);
	 
	 /**
	  * 消息已经阅读（把消息表的state字段修改为1）
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日上午11:25:22
	  */
	 public void updateMessage(String id);
	 
	 /**
	  * 添加好友 确认通过后进行修改（此表中的apply_state字段为1）
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日上午11:52:10
	  */
	 public void updateApply(User user);
	 
	 /**
	  * 根据用户id获取此用户的商户id
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日上午11:54:52
	  */
	 public String getBusinessId(int ids);
	 
	 /**
	  * 根据id获取商户的详情信息
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日上午11:56:16
	  */
	 public BusinessInfo getBusiness(String bid) ;
	 
	 /**
	  * 获取好友个数
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日上午11:59:24
	  */
	 public int getApplyFirend(User user);
	 
	 /**
	  * 根据登录账号 获取登录信息
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日下午12:59:23
	  */
	 public UserLogin getUserMes(User use);
	 /**
	  * 根据用户id查询账户信息
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日下午1:48:12
	  */
	 public UserAccount getAccount(String userId);
	 
	 /**
	  * 根据登录id查询积分
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日下午1:49:44
	  */
	 public String getPoints(String loginId);
	 
	 /**
	  * 根据账号查询id
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日下午1:51:51
	  */
	 public String findByPhonea(UserLogin login);
	 
	 /**
	  * 
	  * @param login
	  * @return
	  */
	 public int findByPhone(UserLogin login);
	 /**
	  * 修改积分
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日下午1:53:09
	  */
	 public void updatePoints(User u);
	 /**
	  * 根据代理人id查询代理的信息个数
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日下午1:57:56
	  */
	 public int getIsAgent(int id);
	 
	 /**
	  * 根据登录账号 获取用户详情表中的id
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日下午2:02:02
	  */
	 public Integer getUserInfoByLoginId(int loginId);
	 
	 /**
	  * 用户升级为vip用户 在vip用户表中 添加一条信息
	  */
	 public void saveVipDetails(User u);
	 
	 /**
	  * 升级用户的vip等级
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日下午2:08:16
	  */
	 public void updateLevel(User us);
	 /**
	  * 根据用户id获取用户的vip等级，冻结金额等信息
	  * @author : GeHuanHuan
	  * @version : 2017年6月12日下午2:10:23
	  */
	 public User getUserLevel(int id);
	 
	 /**
	  * 根据登录名和密码查询环信的id
	  * @param user
	  * @return
	  */
	 public String getHxId(User user);
	 
	 /**
	  * 根据环信id查询用户信息
	  * @param login
	  * @return
	  */
	 public User appLogin(UserLogin login);
	 /**
	  * 环信表中存值
	  * @param hx
	  * @param id
	  */
	 public void saveAppHx(String hx, int id);
	 
	 public Group getGroupMsg(Group group);
	 
	 public void updateimageAddress(Integer id, String imageAddress);
	 
	 public User getById(User user);
	 
	 public void saveUserRegister1(UserLogin login, int id,String clientid,String clientSecret,String orgName,String appName);
	 
	 public int saveUserRegister2(UserLogin login,String orgName,String appName,String clientid,String clientSecret);
	 
	 public int saveUserReg(UserLogin login,String points);
	 
}
